#ifndef EDGE_HPP
#define EDGE_HPP

#include <iostream>

class edge_c
{
        long    first_node_id;
        long    second_node_id;
        double  probability;

public:
        ~edge_c ( void );
        edge_c  ( void );
        edge_c  ( long first_node_id, long second_node_id, double probability = 1.0 );

        long                    get_first_node_id       ( void ) const;
        long                    get_second_node_id      ( void ) const;
        double                  get_probability         ( void ) const;
        bool                    is_rigid                ( void ) const;
        bool                    is_valid                ( void ) const;
        bool                    is_normalized           ( void ) const;
        void                    normalize               ( void );
        void                    parse                   ( std::istream & stream, bool parse_probability = true );
        bool                    operator==              ( const edge_c & right ) const;
};

#endif

